#include<iostream>
using namespace std;
const int N = 1e7 + 10;
int f[N][N];
int g[N][N];
int f[N];
dfs(i, j)
{
	return maxdfs(i - 1, j), dfs(i, j - 1) + g[i][j];
}
int main()
{
	f[1][1] = board[1][1];
	for (int i = 1; i <= 6; i++) {
		for (int j = 1; j <= 6; j++) {
			f[i][j] = max(f[i - 1][j], f[i][j - 1]) + g[i][j];
		}
	}
	cout << f[6][6] << endl;
	return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

// p0 表示 '0' 出现的次数；p1表示 '1' 出现的次数
double h(int p0, int p1) {
	// 需要将 3/6 化简成 1/2 这样的形式，简化运算的时间
	// 将分子和分母共同除以它们的最大公因数即可。
	int t0 = p0, t1 = p1;
	// 获取最大公因数
	int t = gcd(t0, t1);
	// 化简
	t0 /= t, t1 /= t;
	// 获取总数
	double t2 = t0 + t1;
	// 返回的答案
	double res = 0;
	// 套入公式
	res -= p0 * (t0 / t2) * (log2(t0) - log2(t2));
	res -= p1 * (t1 / t2) * (log2(t1) - log2(t2));
	return res;
}

int main () {
	// 100 由 2个0 和 1个1 组成，代入函数以验证函数的正确性
	cout << h(2, 1) << endl;
	
	return 0;
}

